package com.shujia.mvc2.service;

import com.shujia.mvc2.dao.UserDao;
import com.shujia.mvc2.dao.UserMysqlDao;
import com.shujia.mvc2.User;

/**
 * 业务层： 业务逻辑
 * <p>
 * 实现登录注册的业务逻辑
 */
public class UserServiceImpl implements UserService {

    private UserDao dao = new UserMysqlDao();

    /**
     * 登录的方法
     *
     * @param username
     * @param password
     * @return
     */

    public String login(String username, String password) {


        /*
         *判断用户名和密码是否正确
         *
         */


        //调用数据库持久层的方法，通过用户名查询用户
        User user = dao.queryUserByUsername(username);

        //判断用户名是否存在
        if (user == null) {
            return "用户名不存在";
        }

        //判断密码是否正确

        if (!password.equals(user.getPassword())) {
            return "密码不正确";
        }


        return "登录成功";

    }


    /**
     * 注册
     *
     * @param username
     * @param password
     * @param password1
     * @return
     */

    public String register(String username, String password, String password1) {

        //1、判断密码是否一致

        if (password == null || !password.equals(password1)) {
            return "密码不一致";
        }


        //2、判断用户名是否存在
        User user = dao.queryUserByUsername(username);

        if (user != null) {
            return "用户名已存在";
        }


        //3、插入数据到数据库
        User newUser = new User(username, password);
        dao.insert(newUser);


        return "注册成功";

    }

    /**
     * 修改密码
     */

    public String modifyPassword(String username, String oldPassword, String newPassword, String nowPassword) {


        /**
         * 判断源用户名和密码是否正确
         *
         */

        User user = dao.queryUserByUsername(username);

        if (user == null) {
            return "用户不存在";
        }

        //判断源密码是否正确
        if (!oldPassword.equals(user.getPassword())) {
            return "源密码不对";
        }


        //判断两次密码是否一致
        if (newPassword == null || !newPassword.equals(nowPassword)) {

            return "密码不一致";
        }


        //修改密码

        dao.updatePasswdordByUsername(username, newPassword);

        return "密码修改成功";


    }

}
